import java.util.Scanner;

/**
 * Created With IntelliJ IDEA
 * Description:牛客网: 首页 > 试题广场 > 年会抽奖
 * <a href="https://www.nowcoder.com/questionTerminal/610e6c0387a0401fb96675f58cda8559">...</a>
 * User: DELL
 * Data: 2023-05-05
 * Time: 12.56
 */
public class Main {
    /**
     * 解题思路: (典型的错排问题)
     * 要求出无人获奖的概率, 我们首先要求出满足无人获奖的情况数F(n), 其次求出所有情况数T(n),之后进行运算即可
     * 一 求满足无人获奖的情况数.
     * 首先我们这里用 A,B,C....表示 n 位员工, 用 a,b,c....表示写着对应名字的字条,且A和a,B和b....互相对应,
     * 且假设当前问题规模为 F(n),且因为要满足满足无人获奖的情况,因此 a 不能被 A 抽到,
     * 因此这里假设 a 被 B抽到了,则我们可以做出如下分类讨论:
     * 1. b 被 A 抽到了: 剩余的情况就和 A,B 无关了, 即剩余情况数为 F(n-2)
     * 2. b 没有被 A 抽到: 而由于我们的前提是 a 被 B抽到了, 因此接下来的问题就是 A,C....(n-1位员工),来抽 b,c....
     *    (n-1个字条), 且因为前提是 b 没有被 A 抽到, 即 b 不能被 A 抽到, 因此这个问题就可以转变为 A,C....(n-1位员工),
     *    来抽 a,c....(n-1个字条), 显然可能出现的情况数位 F(n-1)
     * 因此通过上述讨论, 我们可以得出当 a 被 B抽到的时候, 无人获奖的情况数为 F(n-2)+F(n-1)
     * 但是 a 还可能被 C,D....员工抽到, 且被 C,D....员工抽到的情况数均和被 B 抽到是相同的,
     * 因此 F(n) = (n-1)(F(n-2)+F(n-1))  ---- F(1) = 0  F(2) = 1
     * 二 求所有情况数
     * 所有的情况数较为简单, 即 T(n) = n!
     * @param args
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //由于是有多组输入,因此这里预先缓存一下每种可能的结果
        long[] F = new long[21];
        long[] T = new long[21];
        //初始化
        F[1] = 0;
        F[2] = 1;
        T[1] = 1;
        T[2] = 2;
        //动态规划缓存结果
        for (int i = 3; i < 21; i++) {
            F[i] = (i-1)*(F[i-1]+F[i-2]);
            T[i] = T[i-1]*i;
        }
        //根据输出打印结果
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            System.out.printf("%.2f%%\n", 100.0*F[n]/T[n]);
        }
    }
}
